package br.ebula.apl.bo;

import java.util.ArrayList;

import br.ebula.apl.bean.Bula;
import br.ebula.apl.constantes.CamposEB;
import br.ebula.apl.constantes.ErroIncluiBula;
import br.ebula.apl.dao.DAOIncluiBula;
import br.ebula.apl.dto.DTOIncluiBula;

public class BOIncluiBula {

	public void incluiBula(DTOIncluiBula dto) {
		
		ArrayList<CamposEB> eb = new ArrayList<CamposEB>();
		
		if(validaDados(dto.getBula(),eb)){
			
			DAOIncluiBula dao = new DAOIncluiBula();
			
			if(dao.verificaBulaNaoCadastrada(dto)){
		    	dao.incluiBula(dto);	
			} else{
				dto.setErro(ErroIncluiBula.BULA_CADASTRADA);
			}
			
		} else{
			dto.setErro(ErroIncluiBula.CAMPOS_EB);
			dto.setCamposEmBranco(eb);
		}
		
	}

	private boolean validaDados(Bula b, ArrayList<CamposEB> eb) {
		
		if( ! verificaCampoInvalido(b.getClasse()) )
			eb.add(CamposEB.CLASSE);

		if( ! verificaCampoInvalido(b.getNome()) )
			eb.add(CamposEB.NOME);
		
		if( ! verificaCampoInvalido(b.getPrincipioAtivo()) )
			eb.add(CamposEB.PRINCIPIO);
		
		if( ! verificaCampoInvalido(b.getSintomas()) )
			eb.add(CamposEB.SINTOMAS);
		
		if(eb.size()!=0)
			return false;
		return true;
	}
	
	private boolean verificaCampoInvalido(String campo){
		if( (campo==null) || (campo.equals("")) )
			return false;
		return true;
	}

}
